\begin{tabbing} combine{-}ecl{-}tuples2($A$; $B$; $f$; $g$) \\[0ex]$\,\equiv$$_{\mbox{\scriptsize def}}$$\;\;$spreadn(\=$A$;\+ \\[0ex]${\it Ta}$,${\it ksa}$,${\it ia}$,${\it ga}$,${\it ha}$,${\it aa}$,${\it ea}$.spreadn \\[0ex](\=$B$;\+ \\[0ex]${\it Tb}$,${\it ksb}$,${\it ib}$,${\it gb}$,${\it hb}$,${\it ab}$,${\it eb}$.$<$:${\it Ta}$ $\times$ (:${\it Tb}$ $\times$ ($\mathbb{B}$ + Unit)) \\[0ex], append(${\it ksa}$; ${\it ksb}$) \\[0ex], $<$${\it ia}$, ${\it ib}$, inr $\cdot$ $>$ \\[0ex], $\lambda$${\it k'}$,$s$,$v$,$x$. let \=${\it sa}$ = if deq{-}member(Kind{-}deq; ${\it k'}$; ${\it ksa}$)\+ \\[0ex]then ${\it ga}$(${\it k'}$,$s$,$v$,$x$.1) \\[0ex]else $x$.1 \\[0ex]f\=i in\+ \\[0ex]let \=${\it sb}$ = if deq{-}member(Kind{-}deq; ${\it k'}$; ${\it ksb}$)\+ \\[0ex]then ${\it gb}$(${\it k'}$,$s$,$v$,($x$.2).1) \\[0ex]else ($x$.2).1 \\[0ex]f\=i in\+ \\[0ex]$<$${\it sa}$ \-\\[0ex], ${\it sb}$ \\[0ex], combine{-}halt{-}info(\=${\it ea}$;\+ \\[0ex]${\it eb}$; \\[0ex]($\lambda$$m$.${\it ha}$($m$,${\it sa}$)); \\[0ex]($\lambda$$m$.${\it hb}$($m$,${\it sb}$)); \\[0ex]($x$.2.2))$>$ \-\-\-\-\\[0ex], $\lambda$$n$,$x$. $f$(($x$.2.2),$\lambda$$m$.${\it ha}$($m$,$x$.1),$\lambda$$m$.${\it hb}$($m$,($x$.2).1),$n$) \\[0ex], $\lambda$$n$,${\it k'}$,$s$,$v$,$x$. \=$g$\+ \\[0ex](${\it ha}$(0,$x$.1) \\[0ex],${\it hb}$(0,($x$.2).1) \\[0ex],reduce(($\lambda$$m$,$b$. bor((${\it ha}$($m$,$x$.1)); $b$)); ff; ${\it ea}$) \\[0ex],reduce(($\lambda$$m$,$b$. bor((${\it hb}$($m$,($x$.2).1)); $b$)); ff; ${\it eb}$) \\[0ex],\=if deq{-}member(Kind{-}deq; ${\it k'}$; ${\it ksa}$)\+ \\[0ex]then ${\it aa}$($n$,${\it k'}$,$s$,$v$,$x$.1) \\[0ex]else ff \\[0ex]fi \-\\[0ex],\=if deq{-}member(Kind{-}deq; ${\it k'}$; ${\it ksb}$)\+ \\[0ex]then ${\it ab}$($n$,${\it k'}$,$s$,$v$,($x$.2).1) \\[0ex]else ff \\[0ex]fi ) \-\-\\[0ex], merge(${\it ea}$; ${\it eb}$)$>$)) \-\- \end{tabbing}